package com.leesche.zcsp.node.web.dao;

import com.leesche.zcsp.node.web.model.PubDevicePayDetailStatistics;
import com.leesche.zcsp.node.web.model.PubDevicePayDetailStatisticsCriteria;
import com.leesche.zcsp.node.web.service.impl.data.read.InfoAccountDto;
import com.leesche.zcsp.node.web.service.impl.data.read.PubDevicePayDetailStatisticsDto;
import com.leesche.zcsp.node.web.service.impl.data.read.QueryPubDevicePayDetailStatisticsCondition;

import java.util.List;

public interface PubDevicePayDetailStatisticsDao extends BaseDao<PubDevicePayDetailStatistics, PubDevicePayDetailStatisticsCriteria, PubDevicePayDetailStatisticsDto, QueryPubDevicePayDetailStatisticsCondition, Long> {
    List<Long> findIncomeDetail(QueryPubDevicePayDetailStatisticsCondition condition);

    /**
     * @Title: selectAccountByDeviceAndDate
     * @Description: TODO( 根据设备ID及日期获取设备的账目信息 )
     * @author Jerry
     * @date 2016-10-31 06:14:58
     * @param condition 设备账目查询条件
     * @return 设备的账目信息集合
     */
    List<PubDevicePayDetailStatistics> selectAccountByStatisticsCondition(QueryPubDevicePayDetailStatisticsCondition condition);

    int updateDeviceIncomeAccount(QueryPubDevicePayDetailStatisticsCondition condition);

    List<InfoAccountDto> findInfoAccounts(QueryPubDevicePayDetailStatisticsCondition condition);

    List<InfoAccountDto> findOnlinePayment(QueryPubDevicePayDetailStatisticsCondition condition);

    PubDevicePayDetailStatisticsDto findFactoryByCondition(QueryPubDevicePayDetailStatisticsCondition statisticsCondition);

    List<PubDevicePayDetailStatisticsDto> selectDeviceProfitByCondition(QueryPubDevicePayDetailStatisticsCondition condition);

}